2 REM Salvar la ballena
5 REM ZX n. 3, pag 35
10 DIM x(20)
20 DIM y(20)
500 POKE USR "u"+0,BIN 00000000
510 POKE USR "u"+1,BIN 00000000
520 POKE USR "u"+2,BIN 00110000
530 POKE USR "u"+3,BIN 01111000
540 POKE USR "u"+4,BIN 11111001
550 POKE USR "u"+5,BIN 11111111
560 POKE USR "u"+6,BIN 11111001
570 POKE USR "u"+7,BIN 00000000
600 POKE USR "i"+0,BIN 00000000
610 POKE USR "i"+1,BIN 00100000
620 POKE USR "i"+2,BIN 01110010
630 POKE USR "i"+3,BIN 01110110
640 POKE USR "i"+4,BIN 01110110
650 POKE USR "i"+5,BIN 11111111
660 POKE USR "i"+6,BIN 11111111
670 POKE USR "i"+7,BIN 11111111
700 POKE USR "e"+0,BIN 00000000
710 POKE USR "e"+1,BIN 11001000
720 POKE USR "e"+2,BIN 01011000
730 POKE USR "e"+3,BIN 00111000
740 POKE USR "e"+4,BIN 11111111
750 POKE USR "e"+5,BIN 00111100
760 POKE USR "e"+6,BIN 00001000
770 POKE USR "e"+7,BIN 00000110
1000 INK 0: PAPER 5
1010 CLS
1020 PRINT AT 2,7;"SALVAR LA BALLENA"
1030 PRINT AT 5,2;"Varios esquimales ";INK 2;"{E}"
1040 PRINT "quieren cazar una ballena {U}"
1050 PRINT '"Para salvarla ha de romper sus  kayaks en el iceberg ";INK 7;"{I}"
1080 PRINT AT 16,2;"3 niveles de dificultad:"
1090 PRINT "Elija....."
1110 INPUT " 1=Dificil, 2=Normal, 3=Facil ";d
1120 IF d<1 OR d>3 THEN GO TO 1110
1500 PAPER 5: INK 5
1550 CLS
2000 REM impresion kayaks
2010 FOR c=1 TO 20
2020 LET x=((SGN (RND-.5))*((RND*4)+11))+15
2030 LET y=((SGN (RND-.5))*((RND*4)+8))+9
2040 INK 2
2050 PRINT AT y,x;"{E}"
2055 LET x(c)=x: LET y(c)=y
2060 NEXT c
2100 REM Impresion icebergs
2110 FOR c=1 TO 20
2120 LET x=((SGN (RND-.5))*((RND*4)+5-d))+15
2130 LET y=((SGN (RND-.5))*((RND*4)+4-d))+9
2140 INK 7
2150 PRINT AT y,x;"{I}"
2170 NEXT c
2200 REM Impresion ballena
2210 INK 0
2220 LET x=INT ((RND*2)+10)
2230 LET y=INT ((RND*2)+10)
2240 PRINT AT y,x;"{U}"
2300 GO SUB 3000
2305 LET f=0
2310 FOR c=1 TO 20
2320 IF x(c)=0 THEN GO TO 2340
2325 LET f=1
2330 GO SUB 4000
2340 NEXT c
2400 IF f=0 THEN GO TO 8000
2410 GO TO 2300
3000 REM movimiento ballena
3010 BEEP .1,10
3020 LET z=x: LET v=y
3040 LET a$=INKEY$
3050 IF a$="" THEN GO TO 3040
3060 IF a$="5" THEN LET x=x-1
3070 IF a$="8" THEN LET x=x+1
3080 IF a$="7" THEN LET y=y-1
3090 IF a$="6" THEN LET y=y+1
3105 PRINT AT v,z; INK 5;" "
3110 PRINT AT y,x; INK 0;"{U}"
3120 RETURN
4000 REM Movimiento kayaks
4010 PRINT AT y(c),x(c); INK 5;" "
4030 LET e=0: LET d=0
4040 LET d=SGN (x(c)-X)
4050 LET x(c)=INT (x(c)-d)
4060 LET e=SGN (y(c)-y)
4070 LET y(c)=INT (y(c)-e)
4090 IF ATTR (y(c),x(c))=47 THEN LET x(c)=0: GO TO 4500
4110 IF ATTR (y(c),x(c))=40 THEN GO TO 7000
4120 INK 2
4130 PRINT AT y(c),x(c);"{E}"
4500 RETURN
7000 PRINT AT 20,1; PAPER 7;"La ballena murio...";
7005 PRINT AT y(c),x(c);" "
7010 GO TO 9000
8000 PRINT AT 20,1; PAPER 7;"Escapo por esta vez.";
9000 INPUT "Otra vez (s/n)";g$
9010 IF g$(1)="s" OR g$(1)="S" THEN GO TO 1000
9020 CLS : STOP
9500 SAVE "Greenpeace" LINE 1